# Input Private

## Installation
`npm i @snack-uikit/input-private`

[Changelog](./CHANGELOG.md)

```ts
export type Type = 'text' | 'password'
```

```ts
export type InputPrivateProps = RefAttributes<HTMLInputElement> &
  WithSupportProps<{
    name?: string;
    value: string;
    onChange?(value: string, e?: ChangeEvent<HTMLInputElement>): void;
    id?: string;
    className?: string;
    placeholder?: string;
    type?: Types;
    disabled?: boolean;
    autoComplete?: boolean;
    maxLength?: number;
    onFocus?: FocusEventHandler<HTMLInputElement>;
    onBlur?: FocusEventHandler<HTMLInputElement>;
    prefix?: ReactNode;
    postfix?: ReactNode;
    onClick?: MouseEventHandler<HTMLInputElement>;
    onMouseDown?: MouseEventHandler<HTMLInputElement>;
  }>;
```
[//]: DOCUMENTATION_SECTION_START
[//]: THIS_SECTION_IS_AUTOGENERATED_PLEASE_DONT_EDIT_IT
## InputPrivate
### Props
| name | type | default value | description |
|------|------|---------------|-------------|
| name | `string` | - | Значение html-атрибута name |
| value | `string` | - | Значение input |
| onChange | `(value: string, e?: ChangeEvent<HTMLInputElement>) => void` | - | Колбек смены значения |
| placeholder | `string` | - | Значение плейсхолдера |
| id | `string` | - | Значение html-атрибута id |
| className | `string` | - | CSS-класс |
| type | enum Type: `"number"`, `"text"`, `"password"` | text | Тип инпута |
| disabled | `boolean` | - | Является ли поле деактивированным |
| readonly | `boolean` | - | Является ли поле доступным только для чтения |
| autoComplete | `boolean` | - | Включен ли автокомплит для поля |
| maxLength | `number` | - | Максимальная длина вводимого значения |
| min | `number` | - | Минимальное значение поля |
| max | `number` | - | Максимальное значение поля |
| onFocus | `FocusEventHandler<HTMLInputElement>` | - | Колбек обработки получения фокуса |
| onBlur | `FocusEventHandler<HTMLInputElement>` | - | Колбек обработки потери фокуса |
| onKeyDown | `KeyboardEventHandler<HTMLInputElement>` | - | Колбек обработки нажатия клавиши клавиатуры |
| tabIndex | `number` | - | Значение атрибута tab-index |
| onClick | `MouseEventHandler<HTMLInputElement>` | - | Колбек обработки клика |
| onMouseDown | `MouseEventHandler<HTMLInputElement>` | - | Колбек обработки нажатия кнопки мыши |
| key | `Key` | - |  |
| ref | `Ref<HTMLInputElement>` | - | Allows getting a ref to the component instance. Once the component unmounts, React will set `ref.current` to `null` (or call the ref with `null` if you passed a callback ref). @see https://react.dev/learn/referencing-values-with-refs#refs-and-the-dom |
## useButtonNavigation
`hook` 

Позволяет использовать клавиатуру для навигации по элементам управления
## useClearButton
`hook` 

Позволяет использовать кнопку сброса значения
## moveCursorToEnd
`helper` 

Переносит курсор в конец поля ввода
## selectAll
`helper` 

Выделяет весь текст в поле ввода
## runAfterRerender
`helper` 

Откладывает колбек на следующий цикл EventLoop
## isCursorInTheEnd
`helper` 

Проверяет находится ли курсор в конце поля ввода


[//]: DOCUMENTATION_SECTION_END
